Languages to Know For Tech SEO
By Matthew Edgar · Last Updated: December 16, 2022
Working on technical SEO inevitably will require working with code. This can seem daunting, especially for those who come from a non-technical background or those who didn’t want to be a programmer. Yes, you will almost always work with developers who can assist with more complicated technical projects. While not everybody who works in technical SEO needs a complete mastery of every programming language, everybody involved should understand certain technical concepts to ensure more successful outcomes.
Having even a bit of familiarity with these programming languages will improve your ability to analyze websites, understand the website’s structure, understand SEO performance, and converse with developers. More importantly, having a better understanding of the underlying technology will help you see what new opportunities might exist to improve your website’s SEO performance.
What Languages You Should Know
Along with those programming languages, another language you should understand is SQL. If you are given a SQL table to review, you should be comfortable enough querying basic information and understanding how the data is related across different tables.
And, the final languages you should also be very comfortable working with are HTML and CSS, which govern the page’s styles and structure. If you view the source on an HTML page, you should be able to understand how the content is being rendered and understand how the CSS is displaying content.
Why you need these languages in your toolkit and what you are going to do with each language changes depending on the language and how it is used. Let’s go through some examples.
But First…Where To Learn?
If you aren’t familiar with these languages, that’s okay. There are great free courses available to help you learn each language. While there are many options, here are a few to get you started:
PHP comes in handy for any technical SEO professional who works on websites built in a PHP-based CMS, the most common of which is WordPress. Sometimes you need to make changes to template or function files, like adjusting the way titles or descriptions are output. You may need to change the HTML to use a different tag—like changing from a span tag around headers to an h1 tag. Other times, these might be more substantial than mere tweaks. For example, you may need to write custom code to output schema within a custom template relying on custom variables unique to that particular template and that particular type of content. The more familiar you are with PHP, the more comfortable you can be that your tweaks will work without causing any harm to the website.
More often than not, though, you aren’t trying to write new code. Instead, you need to review how existing code works to make sure it will output content or features correctly for robots and humans. As part of a technical SEO audit, for example, you may need to review how different files are being output on the website. Knowing how the file is put together requires wading into the code behind the scenes. That includes looking at all the functions and files that made that file possible (which also often requires having a good handle on WordPress’s file structure) and also includes reviewing the content as stored in the database.
Structured Query Language (SQL)
In almost all cases, you are going to work with SQL at the same time you are working with PHP. because most PHP-built websites store data in a MySQL database (like WordPress). In WordPress, as an example, you may want to review all the different pages contained on the website and the data contained about those pages. By accessing the WordPress database directly, you can see exactly where content is stored and what content exists. You can also export some of the data out of the database for further manipulation. For example, you may want to export all page titles or you may want to find a complete list of all pages contained on your website (some of which might be orphaned pages and not detectable within a crawl anyway).
SQL knowledge isn’t only helpful when trying to extract information about a website. If you are doing any type of larger data analysis, which is a common SEO practice, SQL can make the job far easier. Instead of trying to manipulate and filter and sort data in Excel, you can import your data into a SQL database for more powerful processing. For example, the WHERE clauses in SQL allow for more customizations to filter criteria than any filtering that Excel allows for. In SQL, you can also customize ORDER BY clauses for more advanced levels of sorting. The more advanced your SQL knowledge, the more you will benefit from SQL in your data analysis and processing.
Python is the go-to language for data analysis and statistics. If you are doing major analysis work, or anything involving machine learning, Python is a critical tool to help you solve problems and get the answers you need. Once you are ready to move beyond basic analysis that can be accomplished in Excel or once you are working with larger data sets, you are going to need Python (a good example of that can be found here). More specifically, you are going to want to work with NumPy, Pandas, Matplotlib, and other similar libraries to help you analyze your data more aggressively. SQL knowledge can also be helpful here as you can connect Python to SQL databases, such as with the SQLLite library.
Another common need within technical SEO is a custom crawler. There are great off-the-shelf crawl tools, like Screaming Frog or JetOctopus. However, you may need to crawl a website for a specific type of text and then add in some additional processing if that text is found (for example, you may need to find every page with an h2 containing a specific phrase). Python offers easier ways of creating and deploying bots to crawl through your website’s pages, including frameworks like Beautiful Soup or Scrapy.
Finally, there are HTML and CSS. While two distinct languages, these really go together. Neither are programming languages but instead provide markup that helps browsers (and search engine robots) understand how to structure the website’s content. These are the languages those working in technical SEO will likely spend the most time interacting with and analyzing.
At a minimum, you’ll want to review the website’s HTML code to ensure the basic HTML tags are in place. This includes checking for title tags, header tags, various meta tags, link tags (for canonicals or hreflangs), and more. The better structured your HTML is, the easier time it will be for robots to crawl through your website and index your website’s content. As well, well-structured HTML also helps with web accessibility, which is important in its own right and increasingly becoming important for SEO and UX.
As you review your HTML code, you’ll also want to review how that is styled within the CSS; an H1 tag is of little actual importance if it is styled to look like every other piece of text on a website. At the same time, you’ll want to make sure your CSS is styling the content correctly on different browser sizes, including on mobile devices. There are many gains to checking this styling, but the most important for SEO is staying in compliance with Google’s mobile-friendly guidelines.
As a bonus, if you understand HTML, you already understand XML too. XML sitemaps are still very important for SEO, especially for larger and more complicated websites. RSS feeds are a dialect (or version) of XML, making XML useful to understand how RSS feeds work on your website too. Plus, many APIs share data via an XML file and that means XML knowledge can help you access different information from third parties—which can be useful for content generation, analytics, and more.
I’m not suggesting you need to learn all these languages to succeed in SEO. I’m also not suggesting you need complete mastery of these technical subjects when working on the technical side of SEO. However, better understanding the technical aspects of SEO and getting the results you want requires some familiarity with these languages. Even spending a bit of time studying these languages and taking the time to use that knowledge can help you identify new areas to improve and problems to fix. As always, let me know if you have any questions or if you need help on your website, please contact me.