

Ask HN: Web app architecture - srkiranraj

I am developing a review/recommendation web app (like imdb/zomato). How should my app architecture should be so that it is highly search engine friendly. Until now I have been using "Single Page Architecture". In order to maintain history we add # in URL's. A sample URL looks like domainname/#/category/value (And contents of this page is mostly generated using javascript). Due to hashes search engines don't index it.
Whenever a user searches for a keyword in the above URL, how do I get this page to be displayed in search result as well.<p>Any tips or words of wisdom for making my app SEO friendly.
======
xackpot
Using #! (hashbangs) in not advisable as you will be presenting different
pages to the users and the web crawler for the same URL. If you can make sure
that you present the same content to the users and the crawler then you should
be fine.

Anyways, the preferred method for such single page seo friendly URLS is to
have hashbang in them. E.g. domainname/#!/category/value. When the search
engine crawls to this page it will crawl to
domainname/?_escaped_fragment_=/category/value. So for the crawler you will
have to write search engine friendly page with all the info that you want it
to index. But also make sure that the same info is presented to the users. The
UI could be different in both the cases but the content should be same. When
the search engine indexes these pages, it will present the url in #! formats
in the search results. For more details check out the link that mileschet has
provided.

------
mileschet
Hi, i´ve been doing some research on it too, i strongly recommend you to visit
[https://developers.google.com/webmasters/ajax-
crawling/docs/...](https://developers.google.com/webmasters/ajax-
crawling/docs/getting-started) it gives me some direction.

------
dotborg
use window.pushstate instead of urls with hashes,

you can change URL in window address without reloading entier page

Google will index "hashbangs", but they will rank poorly and you will get only
small amount of traffic from search

