Some Magento installations are still set not to use the web server Url Rewrite capability and for that reason, index.php shows up in the URLs:
The key settings are:
System > Configuration > Web –> Url Web Server Rewrites: Yes
Note: the scope is store view so make sure when you change the Default Config value you don’t have a different value set at a Store View level.
Things to check:
- .htaccess is present in document root
- Apache is properly configured (AllowOverride)
Save and clear Magento cache (if you use any Full Page Caching you need to clear that as well) and now the URL is clean: