top of page

Hiring the right talent can be a pivotal business decision, but the interview process can be a challenge for everyone involved. Based on my experience on both sides of numerous interviews, I've gathered the most common technical SEO questions and answers.

Whether you're a candidate preparing to showcase your skills or a hiring manager looking to ask the right questions, the following guide will prepare you for an upcoming technical SEO interview, and approach it with confidence.


In your opinion, what are the most important SEO ranking factors?

Some of the most important Google ranking factors are: content quality, mobile-first, backlinks, domain authority, and technical SEO. Then, there are other factors such as EEAT (Experience, Expertise, Authoritativeness, and Trustworthiness) which are not direct ranking factors, but can be an indicator of content quality. There isn't one specific ranking factor that will lead to high rankings. SEO is about ensuring that all of your pages consistently provide a positive user experience, in terms of both content and technical aspects.


What are rich snippets?

Rich snippets are more visually appealing search results with additional information displayed alongside the title, description, and URL path. That extra information could be prices, ratings, reviews, or something else. To get rich snippets, you need to implement structured data on your page.

Example of rich snippets in google search results

What is a canonical tag?

A canonical tag is a snippet of code that specifies the main (canonical) version of a page. It’s used to avoid duplicate content issues that may arise when the same or highly similar content is accessible under different URLs. Google treats the canonical tag as a hint—not as a directive or a command. So using a canonical tag does not guarantee that google will use that for indexing and ranking. One of the other URLs could still get indexed and ranked instead.


What is the difference between a 301 and 302 redirect?

A 301 redirect is a permanent redirect that indicates to search engines that the original URL has permanently moved to a new URL, and that the SEO authority and ranking power of the original URL should be passed to the new URL. On the other hand, a 302 redirect is a temporary redirect that indicates to search engines that the original URL has temporarily moved to a new URL. In this case, the SEO authority and ranking power of the original URL may not be passed to the new URL.


What is a URL slug?

A URL slug is the last part of the URL that provides information about the content on the page. For example, in the below URL for one of my previous blog posts, the URL slug is "japanese-seo"


What is robots.txt?

robots.txt is a file that instructs search engine bots about which sections or pages of the website they should and shouldn’t crawl. The instructions are written using “User-agent,” “Allow,” and “Disallow” directives, which specify the name of the bot, the path of the website to be crawled, and path of the page to be blocked, respectively.


What is the difference between disallowing Googlebot access via robots.txt directive and a no-index directive?

The no-index meta tag is for keeping pages out of Google’s index. It tells search engines not to show the page in SERPs. When Googlebot or other crawlers find the no-index tag in a page’s code, they’ll exclude that page from SERPs, even if other sites link to it. A common use case is preventing temporary pages such as seasonal offers, thank you and confirmation pages from cluttering the SERPs.


On the other hand, robots.txt is for controlling and optimizing crawling. It should be used to keep search engines from indexing specific sections of your website, such as admin panels and private content. However, robots.txt won’t prevent your page from appearing in search results. That’s why you might sometimes see the message “No information is available for this page.”

Example of robots.txt in Google search results

Do you follow any SEO blogs or websites?

Ye, I follow Google Search Central and Analytics Mania by Julius Fedorovicius, and am subscribed to SEOFOMO by Aleyda Solis and SEOForLunch by Nick LeRoy. I'm also an active member of several online communities, such as Women In Tech SEO and Measure Slack (if anyone needs an invite, let me know!)


Posted: May 24, 2024

Updated: Apr. 30, 2025


In addition to generating ad revenue, blogging can be valuable for your personal growth. As part of the process of writing in-depth blog posts, you may shift away from short videos and social media posts, and instead consume long-form content or even seek new learning experiences. You'll become a subject-matter expert on your blog niche, and if you're a lifestyle blog writing about personal experiences, you'll gain self-awareness through introspection. You can even blog anonymously if you're not sure about maintaining the blog long-term, or shy about revealing your inner thoughts. The topics that bloggers feel shy about posting are often the ones that readers are most interested in.


Blogging also makes you more knowledgeable about SEO, especially if you are using self-hosted WordPress and coding things yourself. This can lead to job prospects in either copywriting or web development. As a non-native English speaker myself, writing blog posts has been a great way to improve my vocabulary and communication skills.


In this post, I will explain how to build a self-hosted WordPress blog that ranks on Google and generates ad revenue as soon as possible.


Domain Name and Hosting

If you haven’t already, start by getting a domain name and hosting. You can choose from a bunch of providers such as HostGator, Hostinger, Bluehost, GoDaddy, etc. I used HostGator simply because I had a discount code for them.


Install WordPress

Once you have the domain name and hosting, go ahead and install WordPress. It may take a few minutes, but eventually you’ll be able to login to WordPress at yourdomain.com/wp-admin/ 


If the hosting provider already set up the login credentials but you want to change the username, that isn’t possible directly in WordPress. You'll find that the option to edit username is greyed out. Instead, access phpMyAdmin through your hosting panel, and find the users table where you can then directly edit the username.

WordPress edit username screenshot

Next, install plugins and delete any pre-selected ones that you won't use. I recommend keeping SSL Insecure Content Fixer for security reasons and installing Yoast SEO because it will help to generate the sitemap.


Customize Theme

Pick one of the themes available in WordPress, upload a pre-made theme, or build your own. I previously borrowed Luxeritas theme for my second blog. The nice thing about WordPress, unlike most other website builders, is that you can access the functions.php via Theme Editor and customize even pre-built themes. If you use a pre-made theme, watch for theme updates from the developer and keep track of any custom changes on the theme files.


Resolve any compatibility issue between your plugins and theme as soon as they arise. For example, the Luxeritas theme has built-in SEO functionality but I am also using Yoast SEO plugin. Without any customizations, this would cause duplicate meta description tags. There are 2 approaches to resolving this issue: remove meta description from the Luxeritas theme file, or block the Yoast SEO meta description by adding a custom plugin.

<?php
/**
Plugin Name: wpse425362
Description: Site specific code changes for example.com
*/
if (!defined('ABSPATH')) exit; // Exit if accessed directly   
/**
 * Removes the meta description generated by Yoast
 *
 * @param array $presenters the registered presenters.
 *
 * @return array the remaining presenters.
 */
function wpse425362_remove_description( $presenters ) {
    return array_map( function( $presenter ) {
        if ( ! $presenter instanceof Meta_Description_Presenter ) {
            return $presenter;
        }
    }, $presenters );
}
add_action( 'wpseo_frontend_presenters', 'wpse425362_remove_description' );

Add Sitemap to Google Search Console

Earlier in this post, I recommended using Yoast SEO plugin to generate the sitemap. One known minor bug, however, is that the homepage appears in both the page and post sitemaps. To keep the homepage in the page sitemap and just remove it from the post sitemap, I added this snippet to functions.php

add_filter( 'wpseo_sitemap_post_type_archive_link', 'custom_wpseo_post_type_archive_link', 10, 2 );
function custom_wpseo_post_type_archive_link( $link, $post_type ) {
    if ( $post_type === 'post' ) {
        return false;        
    }
    return $link;
}
add_filter( 'wpseo_sitemap_entry', 'remove_homepage_from_post_sitemap', 10, 3 );
function remove_homepage_from_post_sitemap( $url, $post, $context ) {
    if ( $context === 'post' && $post->ID === get_option( 'page_on_front' ) ) {
        return false;
    }
    return $url;
}

Once your site is ready for launch, publish it and add the sitemap to Google Search Console. You’ll first be prompted to verify domain ownership via DNS record, which can be done by adding a TXT record in cPanel Zone Editor. It may take some time for the verification to be picked up by Google. If you're unsure, replace yourdomain with your actual domain in the url below to check that the TXT record was properly added.

https://dns.google/query?name=yourdomain.com&type=TXT&dnssec=true

SEO Settings

I won't cover the basic SEO concepts like keyword research and backlinking in this post, but here are some initial SEO settings to should consider.


Categorize your blog posts so that readers can easily navigate the site. When doing this, you usually shouldn't noindex the category pages. Google treats noindex pages as nofollow, so it can hurt the site structure. However, if the category pages are not part of the structure (i.e. not reachable through any link on the site), then it's fine to noindex them.


The more you can publish without compromising on quality, the better. Posting frequency does not matter for SEO so if you have some pre-written posts, go ahead and publish them all at once. Since it can take several weeks or months for new pages to rank on Google even if they are SEO-friendly, scheduling your posts for a later time just causes an unnecessary delay. Generally, don't mess with the post dates like scheduling or back dating unless you have good reason to.


If your goal is to rank for low-competition keywords, you should start seeing results within a few months. But if your benchmark for SEO success is lead generation or conversions, then it may take at least 6 months to start getting results.


Monetize Your WordPress Blog

Once your blog starts gaining traction, you may think about earning some extra income from it, via ad monetization or affiliate links.


Ad Monetization

Google AdSense was previously said to be the easiest ad network to get approved on, but these days, more that 95% of the applications result in rejections. Whether you choose to apply for AdSense or an alternative platform, here are some point to keep in mind, to increase the likelihood of getting approved.


Number of Posts

Google's stance is that your blog should offer unique and valuable content, and provide a positive user experience. There are no official requirements but the general consensus among bloggers is that your domain should be at least 6 months old, and have 15-20 posts in the same category, which can definitely be indicative of valuable content. However, I've heard of blogs with less than 10 posts getting approved, and blogs with nearly 100 posts getting rejected.


Niche

AdSense approval usually doesn't depend on the niche, unless you are writing about controversial topics. As stated above, the quantity and quality of the content and traffic are much more important. However, some niches may be more difficult to get approval because there are already many other, similar websites. These niches include cooking recipes, travel, celebrities, animals, tech and programming, and YMYL.


Required Pages

To increase your chances of AdSense approval, make sure your website has certain essential pages such as privacy policy, contact form, and about us. These pages provide valuable information to your visitors and demonstrate that your website is legitimate and trustworthy. If you blog anonymously, there is no need to publish your personal information, but at least share your background, experience, and any qualifications relating to your niche.


Affiliate Links

Affiliate links, such as Amazon associates affiliate links, can be a great way to monetize the website traffic on your blog. There are several plugins available for adding affiliate links to a WordPress site, such as ThirstyAffiliates or Affiliate WP. However, these are mostly paid plugins. In this section, I will share how to use embedded code to add affiliate links to a WordPress site for free. 


In addition to Data Chai, I actually have a second blog in Japanese, and some posts include Rakuten affiliate links. However, the method that I describe below should be applicable for any affiliate programs. 


For this example, I have chosen an eyelash serum as the product that I'm going to post an affiliate ad for on my blog. On the Rakuten affiliate platform, I can customize the image and dimensions, check the preview of the affiliate link card, and generate the embed code.

Screenshot of Rakuten affiliate platform

Screenshot of Rakuten affiliate platform

The official instructions simply say to copy the embed code into your blog post and you're good to go. Well, this looks fine on desktop, but the auto-generated embed code is not optimized for mobile. On mobile, this horizontal affiliate link card would get cut off.


So, I customize the affiliate link card to make it vertical. While I'm at it, I hide the product price, since doing so usually results in more clicks. Below is the mobile version that I created.

Screenshot of Rakuten affiliate platform

In my WordPress theme, I have the below snippet in the header so that I can easily reference it on posts. If you don't already have something like this, and it's your first time using this method to add mobile-responsive affiliate links, then you'll need to add the below snippet to add-header.php

<style>
.mobile {
display: none;
}
.desktop {
display: block;
}
@media screen and (max-width: 768px) {
.mobile {
display: block;
}
.desktop {
display: none;
}
}
</style>

Then in my post, I use the below template to make the affiliate card mobile-responsive. The auto-generated embed code does not include alignment, so I also use this template to center align the affiliate link cards.

<div class="mobile" align="center">
<!-- Copy/paste source code for mobile here -->
</div>
<div class="desktop" align="center">
<!-- Copy/paste source code for desktop here -->
</div>

Earlier this year, I completed the 100 days of code challenge, where I coded for (almost) 100 consecutive days. 


What is 100 days of code?

I’m sure that most people in the tech space are already familiar with the 100 days of code challenge. In short, it’s a challenge created by Alexander Kallaway to spend at least an hour coding for 100 days in a row, and to post about your progress on platforms like Twitter and GitHub. More details can be found at 100daysofcode.com or the official repo.


The 100 days of code challenge has garnered a lot of attention in the tech community, and different variations such as Angela Yu’s 100 days of python course have emerged. 


My Approach to 100 Days of Code

For my 100 days of code, I didn’t specialize in a specific language or topic. I did a mix of theory (tutorial videos, podcasts, etc.) and hands-on practice, on a wide range of topics. 


I work full-time, have a decent social life, and recently got married. Besides normal things like being in a bad mood, there were circumstances like slow wi-fi on the plane while traveling and preparing for my wedding. So I skipped a few days here and there when I needed to, but I made sure never to skip simply because I wasn’t motivated.


Motivation

I struggled with a lack of motivation, especially around the 40-60 days mark. For me, coding is a fun hobby and also useful for my job, where I’m often tasked with developing automation solutions or analyzing large datasets. However, I’m not a software engineer or game developer, so it’s not necessarily essential for my job. I probably would‘ve been more motivated if I actually wrote code for a living, but since I don’t, there were definitely days where I felt unmotivated. 


On day 47, I attended Pycon HK 2024, and that really helped to motivate me again. A former colleague of mine was presenting a lightning talk, so I decided to go and check it out for a few hours. Although I could have just watched the talks online, physically going to the venue was a nice change of pace, and being in the same environment as other developers with similar interests was inspiring to me.


After attending Pycon and regaining my motivation, I did then watch more python videos online as well as listened to some interesting data science podcasts like Learning Bayesian Statistics and Not So Standard Deviations.



What I Learned from 100 Days of Code

Going into the challenge, my goals were to work on long-term projects that I normally didn’t have enough time for, and publish technical blog posts. 


Here is a list of things that I achieved from 100 Days of Code.


Will I do the challenge again? Probably not soon, because I’m working on some other things these days. Will I continue coding? Hell yeah!


“Don’t wait until everything is just right. It will never be perfect. There will always be challenges, obstacles and less than perfect conditions. So what. Get started now. With each step you take, you will grow stronger and stronger, more and more skilled, more and more self-confident and more and more successful.” — Mark Victor Hansen

bottom of page