I recently worked on a AngularJS based portal. One of the main areas of portal is to list available job opening for the organization. Right now, Google does index some of our job listings. Since jobs do expire and new jobs are regularly updated, google actually doesn't always has latest data.

When I lookup whether a few job links are indexed on google search console, a few of the jobs links are, but only root section of SPA is indexed (no job content available on indexed page), a few are encountering redirection error and a few are not able to load required JS scripts to render page properly even when none of the scripts are hosted externally.

What is the right way to handle search engine optimization for single page applications ? Do I have to create a parallel processed version of page that would be served to crawler ?

Do I write a scheduler to create a sitemap.xml to list all available jobs and push it for analysis ? Even in this case how do I force deletion of stale jobs ?

  • 1
    You will have to do Server-Side Rendering (SSR) for the job listing pages that are to be indexed. angular.io/guide/universal -- Strategically, here are a whole bunch of other considerations, sitemaps.xml like you listed, how you link etc. Regarding Google indexing stale jobs - it happens, it depends entirely on your crawl rate, structured data, the frequency you set in the sitemap of how frequently the page updates (daily, weekly etc). If the individual jobs have URLs dedicated to them and they expire, do they 404 or redirect to the parent?
    – inkovic
    Commented Apr 23, 2019 at 10:23
  • If you want good SEO you can't use angular at this point. Js frameworks are great for data entry and app like experience. By if you have data and pages that need to get indexed, use a traditional framework. Maybe in five years Google will be able to index angular, but not now. Commented Apr 26, 2019 at 12:14

2 Answers 2


You can delete stale jobs with the unavailable_after tag if you wanted to do a sitemap.xml automated update and push. If I were in your shoes I'd make a part of the menu lead to the jobs in a subtab or something. Having a link that goes to them that Google detects can dramatically help with indexation.

At the very beginning of April, Google screwed up and deindexed a lot of people's pages for, "Page with redirect". They've been working to correct it and reindexing. Search engine land did an article on it. https://searchengineland.com/does-google-owe-us-more-than-just-an-apology-over-de-indexing-315468

I've included the unavailable_after tag info on the bottom of this page...

unavailable_after: [RFC-850 date/time] Do not show this page in search results after the specified date/time. The date/time must be specified in the RFC 850 format.

  1. Make sure that your SPA is being rendered by Google properly. Usually when google crawls the root page it follows the links as it finds them. To test whether your page is being rendered properly by Google, download Chromium Version 41. Follow this article on searchengineland.com Priorities for diagnosing JavaScript-powered websites Crawling the modern web

    Check for possible errors in Chromium 41 which usually comes down to adding polyfills to support older versions of browsers

  2. Make sure that your Title, Meta and Canonical tags are being rendered from the server side (recommended for Google). Please refer to this video Deliver search-friendly JavaScript-powered websites (Google I/O '18). It is better if you consider server side rendering, however the video explains a hybrid architecture where your Title, Meta and Canonical tags are sent from the server side and the rest of the code is rendered on the client side. Google has its own headless browser tool called Puppeteer which will help you with server side rendering Headless Chrome: an answer to server-side rendering JS sites
  3. Consider creating a dynamic sitemap where your urls are updated automatically as you add them in your website. This will make the new pages easily discover able for Google
  4. Reduce your server response time which will give Google an indication that it can crawl pages at a good pace

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.