visit
It’s not a one-time thing anymore.
Even the traffic gains from SEO have changed. For example, for keywords with featured snippets showing in results, earning #1 spot in organic search will bring you less traffic and lower click-through rate than a few years back for the same spot. Whatmore earning a featured snippet doesn’t guarantee decent traffic either, as shown in .Even though Google is referring less outgoing traffic to websites than before, it is still for most websites. With that being the case, digging deeper into SEO might be more important for developers and marketers than ever before. And, believe it or not, having a JAMstack website helps a lot.
Let me cover some basics before we continue.JAMstack: Modern web development architecture based on client-side JavaScript, reusable APIs, and prebuilt Markup. — Mathias Biilmann, Netlify co-founder.It is a modern web development architecture that gives devs an opportunity to rely on the advantages of a static website, which include better web performance and security benefits, while still retaining the dynamic attributes of a database-oriented CMS without the database.
According to , search engine optimization (SEO) is the process of increasing the quality and quantity of website traffic, increasing visibility of a website or a web page to users of a web search engine.Speaking in layman’s terms, the whole purpose of SEO is to help your content rank better in search engines for desired/targeted keywords and get under the spotlight of your potential audience. In practice, you are trying to get your content in the of the first page as they get 68% of all the clicks coming from that search result page.
SEO today goes beyond simple page optimization and it can be broadly divided into two parts technical SEO and content SEO. In this post, I’ll be focusing on the technical part through the JAMstack lense. Technical SEO is what helps your content play a central role in SEO. It focuses on helping your website get better visibility and creates a better web experience for your users and search engines.
Now that we’ve got the basics covered, let’s dive into the best practices and see where the JAMstack fits in your search engine optimization efforts.Web performance refers to the speed in which web pages are downloaded and displayed on the user’s web browser — ’s definition.
Here we come to one of the biggest advantages that JAMstack websites have over others — better web performance. In case you didn’t know, with JAMstack, the HTML files are prebuilt and served over the CDN instead of being rendered on the server. This, in turn, provides faster . For example, check Bejamas website (JAMstack website built with Gatsby, Forestry and ZEIT Now) Lighthouse performance score:
Performance budgets. In case you are starting from scratch with a new website or you are planning a redesign be mindful of . The purpose and the overall idea behind it is to set goals of your web build early on so that you can better balance performance issues without harming functionality or your user experience. It helped us immensely during our website re-build (you can check out Bejamas case study for more info). If you decide to take this road start your planning with .
Mobile-friendly design: Having a responsive design, adjustable to the screen, is not a fancy option you can have on your website. It is a necessity from both search engines and users' perspectives. With Google introducing for all new websites, you need to make sure that your website shows perfectly on multiple screens from mobile over tablets to laptops and desktops.
HTTPS: Users' privacy and security come first. HTTPS helps prevent anyone from tampering with the communication between your website and your user’s browser. As a part of their promotion of a more safe and secure web, in 2014 announced that it will use HTTPS as a ranking signal in search results. What that means is that if you have two websites that are the same in every possible way except one is on HTTP while the other is on HTTPS, Google will give a positive bump in search results to the one with HTTPS.
URL Structure, Site Structure, and Navigation: Having a clear URL and site structure, navigation, clean site design, and code influences how your website is perceived from users and point of view. There are a couple of general rules you should stick by:
Google suggests that the fewer clicks it takes to get to a page from your homepage, the better it is for your website.Planning your structure together with the keyword research can help you not only increase the authority of your website but also spread it efficiently and evenly over your pages, raising your chances to appear in search results for all of the desired keywords.Clear website menu with links to your categories, keywords and main pages is a must. Avoid having so-called orphaned pages, that aren’t linked from any other page of your website.Use shorter, keyword-oriented URLs with hyphens to break up words for readability. Keep in mind that the URL should describe the content of the page as clearly as possible.
JavaScript: Reduce the amount of JS on your website. Always keep JavaScript code below your main content as this won’t degrade the user experience. You can use Google Tag Manager to simplify things with custom JS for example.
Images: One of the most significant savings in overall page size and page load speed comes from optimizing images. First, you can utilize or be one of the first to use native image lazy-loading tag introduced to Chrome this summer.
Second, make use of image format (like we did) that is designed and supported by Google, to create images that are better optimized and reduced in file size than JPGs (or PNGs).That, in turn, makes for a faster website. Keep in mind there are web design and UX elements behind image optimization as well. It is not just a question of simple image resizing.| For JAMstackers 👨💻, if you use Gatsby as your , you can circumvent most of the problems that come with the practice of lazy loading with which is a React component that combines Gatsby’s native image processing capabilities with advanced image loading techniques to easily and completely optimize image loading for your sites.
Next.js users can use solution to tackle it. Hugo users can apply for resizing images, lazy loading, and progressive loading. Finally, Jekyll users can do something like this .
All the performance efforts and awesomeness of your content will mean nothing if search engines can’t properly index and crawl your website. You see, allowing search bots to crawl your website is one thing. Making sure bots can crawl and discover all of the important pages while staying away from those you don’t want them to see is something else.
Robots.txt and XML sitemapIn essence file provides search bots with information about the files and/or directories you want or don’t want them to crawl. It can help you keep entire sections of a website private (for example, every Wordpress website has robots.txt file that prevents bots from crawling admin directory). It can also be used to prevent your images and PDFs from being indexed, or your internal search results pages from showing up in search engine results.A , on the other hand, is a file in XML format which provides crawlers with valuable information about the website structure and website pages. It tells the crawler which files are important to your website when the page was last updated, how often it was changed, are there any alternate language versions of the page, etc.
Once you make a sitemap use to let the big G know about it.| For JAMstackers 👨💻, you can simply make them and add them to your repository. Gatsby users can make use of plugins to create and automatically. Jekyll users can easily generate a sitemap by adding the jekyll-sitemap gem to their _config.xml (follow instructions). As for robots.txt, just add a file to the root of your project.
Hugo ships with a file while for Hugo can generate a customized file in the same way as any other template. Finally, Next.js users can use one of these communities' shared .
If duplicated content appears on one or a couple of internal pages, the best way to deal with it is to set up a 301 redirect from the duplicate page to the original page. is a tool that helps you inform search engines of the changes you make to your website structure as well. For example, if you decide to change the URL structure of your page but would like to keep all the goodies backlinks distribute, with 301 redirect you are proclaiming a new URL as the successor of the previous one.
| For JAMstackers 👨💻 who run their site on Netlify (as most of us do), you can easily and rewrite rules in a _redirects file that you add to the root of the public folder.
Amazon S3 users, for example, can set redirect like . In case you are running your website with ZEIT you can set routes in now.json configuration file as described .
Another way to deal with duplicated content is by using the rel=canonical attribute in your link tag. There are two ways you can use it:
<link href=”URL OF ORIGINAL PAGE” rel=”canonical” /> with this one you are pointing search engines to the original “canonical” version of the page. The one crawler is visiting at the moment should be treated as a copy of a specified URL.
or <link href=”PAGE URL” rel=”canonical” /> is a self-referential rel=canonical link to the existing page.
In both cases, the use of the canonical attribute ensures that the right page or the preferred version of the page is indexed.| For JAMstackers 👨💻 Gatsby, for example, has a simple plugin named which sets the base URL used for canonical URLs for your website. If you are using Next JS make the following changes to your post.js ie you need to add next/head and add a canonical tag like this: <link rel=”canonical” href={`${YOUR_DOMAIN}/blog/${TITLE}`} >
Hugo supports permalinks, aliases, link canonicalization, and multiple options for handling relative vs absolute URLs as explained . One of the possible Jekyll canonical URLs solutions can be found .
Making appropriate structure data is pretty straightforward. Check out schema.org for schemas suitable for your content. Use Google’s Structured Data Markup Helper that will guide you through the coding process and add the code in format to the page.
| For JAMstackers 👨💻, you’ll be happy to know that most provide you with the tools to manage structured data, page by page, in a form of defining custom components. Or you can add schema as a part of a template you are using.
However, don’t obsess over performance metrics. For example, if search results for your niche/topic/keyword is packed with pages with videos and/or fancy animations, you can bet speed would be an issue for most (I’m talking about mid-range numbers) but that does not mean your ‘all text and images’ page with high-speed scores would rank well. And chances are it would not convert the targeted audience well either. Why? The ranking is a multifactor game and performance is just a piece in this puzzle.
This post has originally writings published as here used to explain the benefits of JAMstack web dev architecture for business SEO efforts.