Optimising meta titles and descriptions is crucial for SEO and click-through rates (CTR). However, updating them manually for large websites (especially e-commerce) can be tedious. This guide will show you how to automate the process using the OpenAI API and GPT for Sheets add-on – allowing you to generate high-quality, optimised metadata in bulk.
Although this method works for any CMS, we’ll use Screaming Frog and Google Sheets as a universal approach. For Shopify, we recommend using Matrixify instead, as it formats data for bulk import and saves time messing around with the duplication issues caused by Shopify’s /collections/[collection-name]/[product-name] and canonical /products/[product-name] URL structures.
Please note: The quality of AI content can vary drastically depending on the user’s prompt, provided context and general ability to interact with LLMs. Prioritise quality over quantity, use trial and error to improve your results and I always recommend doing the most important pages on your website manually.
Bonus: This workflow isn’t just for metadata – it can be adapted for bulk content updates, product descriptions, headings, and anything else you can think of.
Overview of the process
We’ll be using a combination of tools to create an efficient workflow:
- Screaming Frog for site crawling. You could also use Matrixify for Shopify sites or your preferred URL scraping method.
- Google Sheets.
- GPT for Sheets Add-on.
- OpenAI API for content generation
Step 1: Extract URL list & existing metadata (& any useful context)
As mentioned, you can use any scraping method you prefer, here’s the workflow for Screaming Frog:
Crawl Your Website
- Open Screaming Frog SEO Spider and enter your website URL.
- Configure your crawl settings (at the very least enable XML sitemap crawling)
- Start the crawl and wait for it to complete.
Export Meta Titles & Descriptions
- Navigate to ‘Internal’ > ‘Filter to HTML’.
- Click on ‘Export’ and save the file in your preferred method, you can also save it directly to your Google Drive.
- Open the file in Google Sheets.
Clean the Data
- Remove unnecessary columns but retain important details such as:
- URL
- Current Meta Title
- Current Meta Description
- H1 Tags (optional for additional context)
- Product Descriptions (for eCommerce sites)
- Any on-page content, details or information you can use as context to feed GPT to improve your prompt (& get better results)

Step 2: Install and set up GPT for Sheets
Install the Add-on
- Open Google Sheets.
- Click Extensions > Add-ons > Get add-ons.
- Search for “GPT for Sheets” and install it.
Connect the OpenAI API
- Go to Extensions > GPT for Sheets > Open.
- In settings, enter your OpenAI API key (sign up at OpenAI).
Enable Billing
- OpenAI and GPT for Sheets both require billing for higher usage volumes.
- You can track costs in your OpenAI dashboard / GPT for Sheets extension.
- You can change your AI model inside the extension so experiment to find the best option for you & save costs.

Step 3: Generate automated meta titles
In a new column, enter this formula:
=GPT("YOUR PROMPT HERE")
This is how you interact with ChatGPT directly in your sheet at its most basic form. Within the speachmarks, enter your prompt to create the meta title, here’s an optimised example;
=GPT("Please create an improved version of this meta title for my e-commerce website. Ensure it is in UK English, conversion-focused, and follows a consistent style. Keep it under 60 characters. Use the existing title for context and improve it to maximize click-through rates and search optimization.", A2)
What this does:
- Uses the existing meta title (A2) as context.
- Ensures a consistent style for all titles.
- Keeps titles concise and SEO-friendly.
To explain, the prompt inside the speechmarks is the same as what you enter in the ChatGPT interface. By including the comma and then cell reference, the content inside this cell is also sent in addition to your prompt which gives GPT more context about what you are asking without manually copying and pasting each time. This Is the key to getting good results.
You can change the prompt accordingly, reference whichever cells you like and provide whatever context may be useful, such as a product description or on-page content.

Step 4: Generate automated meta descriptions
Meta descriptions should be compelling, include relevant keywords, and stay within 160 characters.
Using the same method as step 3, here is an example formula:
=GPT("Generate a high-converting meta description for this e-commerce product page. Use UK English, keep it under 160 characters, and make it compelling. Use the product description provided for context.", B2)
How This Works:
- Uses the product description to generate highly relevant meta descriptions.
- Ensures UK English formatting.
- Keeps descriptions concise and engaging.

Step 5: Optimise & validate results
To get the best results, including as much relevant information as possible in your prompts will give the AI model more information to work from. If you simply tell it to “write meta description” it will have no idea what about.
Think of your prompt as a recipe. Ainsley Harriott does not just tell you to ‘cook’, he gives a detailed list of ingredients, a method and what it should taste like at the end.

Prompt engineering tips
Not all AI-generated meta tags will be perfect. Improve results by refining your prompt:
- Include the page or product type in the prompt.
- Use power words like “exclusive,” “premium,” “limited time,” etc.
- Specify industry tone (e.g., professional, fun, authoritative).
- Reference product descriptions, pricing information, categories, tags, or anything else in your prompt that might be useful. Include as much relevant information as possible in your prompts – the more you feed GPT information about what you are asking the better your results will be.
Use a reasoning model to improve prompts
AI understands how AI thinks better than humans can.
For better results (this applies to any prompt for anything) use an advanced reasoning model such as GPT-01 or DeepSeek R1, to review and optimise your prompts.
Example prompt to ask DeepSeek R1:
“Take a look at this prompt I am using in my Google Sheet with GPT for Sheets to automatically create Meta Titles. Please review the prompt. Ask me questions where clarification is needed and suggest improvements I can make to get better results. Here is the prompt: ‘Please create an improved version of this meta title for my e-commerce website. Ensure it is in UK English, conversion-focused, and follows a consistent style. Keep it under 60 characters. Use the existing title for context and improve it to maximize click-through rates and search optimization.'”
*Why do I always say ‘please’ in my prompts?
- I’ve tested this and I am convinced you get better quality results when being polite to any LLM.
- When AI takes over Skynet style, they’ll remember who was nice.
Use GPT for Sheets bulk prompt mode
- Instead of using formulas in individual cells, you can run bulk prompts in the ChatGPT for Sheets sidebar. Simply tweak your prompt to match the necessary format and run from here.
- This helps when processing thousands of pages at once, it also exports the results as plain text rather than the dynamic prompt output.
- Bulk mode can process multiple rows simultaneously for faster completion, be careful though, test your prompt on a couple rows before committing to a whole sheet, as you could burn through your tokens.

Step 6: Import to your CMS
We haven’t listed all CMS here, so research how you can import for your specific site, you can ask GPT or Google for instructions.
Shopify
- Use Matrixify to format the data properly and bulk import.
- Ensure correct field mapping before uploading.
- I’d test with a small CSV of 2-3 pages first to ensure they upload as expected before committing to your entire store.
WordPress
- Use Yoast SEO or Rank Math to bulk update metadata.
- You can also import CSV data using WP All Import, or through a database script.
Custom sites
- Work with your developer to bulk-update meta tags using database scripts.
Best practices
- Always review a sample of generated content before applying changes site-wide.
- Keep a backup of the original meta data.
- Test different prompt variations to find what works best for your specific needs.
- Monitor performance metrics after implementation and adjust accordingly.
- Consider seasonal adjustments to your prompts, this automated approach is particularly useful for Black Friday etc.
Troubleshooting common issues
- Character count overflow – add strict character limits in your prompts.
- Inconsistent style – include example formats in your prompts.
- Missing key information – reference specific cells containing crucial details.
- Rate limiting – use bulk mode to optimise API usage, try different models, and increase your limits (I usually do no more than 300 rows at a time to reduce errors).
Conclusion
Automating meta title and descriptions can save countless hours while maintaining quality and consistency. The key to success lies in crafting detailed prompts that incorporate all available context.
Remember: while automation is powerful, human review remains vital. Use this process as a tool to enhance your efficiency, not as a replacement for human oversight. Please ensure everything you make is high-quality, improves the internet and is useful for everyone.