after reading multiple sources about angularjs and SEO (including google documentation), I understood that my 2 main options to get google to crawl my website are:
- Add hashbang (#!) to my URL, and after the request from the crawling engine has reached my server (in the request, the #! is replaced by escape_fragment) I should render and response html snapshot using external services (like prerender.io) or implement myself.
2.Add hashbang (#!) to my URL - so that google could tell that it has a dynamically rendered data in this url, and add sitemp.xml to the website. as it is shown here
This is how I handle the route:
mi.config(['$routeProvider','$locationProvider', function ($routeProvider, $locationProvider) {
$routeProvider.when('/home', { templateUrl: 'js/app/partials/Home/Home.html' });
$routeProvider.when('/items/:CatId', { templateUrl: 'js/app/partials/Items/Items.html' });
$routeProvider.when('/about', { templateUrl: 'js/app/partials/about.html' });
$routeProvider.when('/checkout', { templateUrl: 'js/app/partials/Checkout/Checkout.html' });
$routeProvider.when('/contact', { templateUrl: 'js/app/partials/contact.php' });
$routeProvider.otherwise({ redirectTo: '/home' });
$locationProvider.hashPrefix('!');
I saw in webmaster tools, that google recognized the new sitemap, but it didnt crawl them still.
Is there something I miss?