Skip to content

CLI tool to skyrocket your Lighthouse score, by generating meta-tags and optimizing your website for better performance.

License

Notifications You must be signed in to change notification settings

aryankeluskar/seothing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

32 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

SEOthing Banner

CLI tool to skyrocket your SEO score by converting images to WebP format, generating meta tags, and optimizing for better performance.

npm version weekly downloads from npm Follow Aryan on X Ask DeepWiki

Installation

npm install -g seothing

Usage

Before vs After

Basic Usage

npx seothing [directory] [options]

Example Output

aryank@Aryans-MacBook-Air aryankeluskar.com % npx seothing

Welcome to SEOthing!
This tool optimizes images, generates meta tags, and boosts your SEO to skyrocket your Lighthouse Score.

? Let's get started with optimizing your images. Do you want to proceed? Yes

๐Ÿ“ธ Processing Images...
Welcome to SEOthing! This is a CLI tool to convert images to WebP format and auto-update references for better web performance.

๐Ÿ” Finding images in: /Users/aryank/Developer/aryankeluskar.com

๐Ÿ“ธ Found 11 convertible image file(s):

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ File                     โ”‚ Type   โ”‚ Original   โ”‚ WebP       โ”‚ Savings    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ public/some pfp.jpg      โ”‚ JPG    โ”‚ 8.34 KB    โ”‚ 2.95 KB    โ”‚ 65%        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ public/professional.jpg  โ”‚ JPG    โ”‚ 168.74 KB  โ”‚ 57.17 KB   โ”‚ 66%        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ public/pfp.jpg           โ”‚ JPG    โ”‚ 74.28 KB   โ”‚ 25.57 KB   โ”‚ 66%        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ public/buildspace.jpg    โ”‚ JPG    โ”‚ 12.53 KB   โ”‚ 4.01 KB    โ”‚ 68%        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ public/hometowns/dadar.โ€ฆ โ”‚ JPG    โ”‚ 6.13 KB    โ”‚ 2.35 KB    โ”‚ 62%        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ public/rcv.jpeg          โ”‚ JPEG   โ”‚ 10.98 KB   โ”‚ 3.79 KB    โ”‚ 65%        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ public/healthgc.jpeg     โ”‚ JPEG   โ”‚ 6.51 KB    โ”‚ 2.34 KB    โ”‚ 64%        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ public/mag.png           โ”‚ PNG    โ”‚ 275.56 KB  โ”‚ 15.25 KB   โ”‚ 94%        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ public/good pfp blur.png โ”‚ PNG    โ”‚ 3.62 MB    โ”‚ 185.14 KB  โ”‚ 95%        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ public/cropped-asu-iconโ€ฆ โ”‚ PNG    โ”‚ 27.34 KB   โ”‚ 1.58 KB    โ”‚ 94%        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ public/banner.png        โ”‚ PNG    โ”‚ 203.85 KB  โ”‚ 14.06 KB   โ”‚ 93%        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“ Summary:
   Total original size: 4.39 MB
   Total WebP size: 314.21 KB (predicted)
   Total space saved: 4.08 MB (93%)


? Do you want to proceed with converting these files? Yes

Starting conversion...

๐Ÿ“ธ Converting images...

   โœ… public/some pfp.jpg โ†’ public/some pfp.webp (-7% smaller)
   โœ… public/professional.jpg โ†’ public/professional.webp (60% smaller)
   โœ… public/pfp.jpg โ†’ public/pfp.webp (-6% smaller)
   โœ… public/buildspace.jpg โ†’ public/buildspace.webp (57% smaller)
   โœ… public/hometowns/dadar.jpg โ†’ public/hometowns/dadar.webp (38% smaller)
   โœ… public/rcv.jpeg โ†’ public/rcv.webp (66% smaller)
   โœ… public/healthgc.jpeg โ†’ public/healthgc.webp (72% smaller)
   โœ… public/mag.png โ†’ public/mag.webp (89% smaller)
   โœ… public/good pfp blur.png โ†’ public/good pfp blur.webp (94% smaller)
   โœ… public/cropped-asu-icon.png โ†’ public/cropped-asu-icon.webp (59% smaller)
   โœ… public/banner.png โ†’ public/banner.webp (73% smaller)

Updating image references in code files...
๐Ÿ“‹ Found 48 code files to check for references
   โœ… Updated 1 reference(s) in src/app/gcsp/index.html
   โœ… Updated 2 reference(s) in src/app/gcsp/furi.html
   โœ… Updated 1 reference(s) in src/app/gcsp/fse150.html
   โœ… Updated 4 reference(s) in src/data/resume.tsx
   โœ… Updated 1 reference(s) in src/components/hometown-section.tsx
   โœ… Updated 2 reference(s) in src/app/layout.tsx

Total references updated: 11

โœ… Processing complete!

๐Ÿท๏ธ Processing Meta Tags...
? Enter your Google Gemini API Key (Get it for Free at 
https://aistudio.google.com/app/apikey): ***************************************

๐Ÿ” Analyzing project structure...
โœ… Detected project type: react
โœ” Repository analysis complete!
โœ” Meta tags generated successfully!

๐Ÿ“ AI-Generated Meta Tags - Edit each field:
Saving field: keywords, value: Aryan Keluskar, Software Engineer, Web Developer, Next.js Developer, React Developer, Portfolio, TypeScript, Resume, Full Stack Developer, FURI
Moving to next field: 1
Saving field: title, value: Aryan Keluskar | Software Engineer & Web Developer
Moving to next field: 2
Saving field: description, value: Explore the portfolio of Aryan Keluskar, a software engineer specializing in Next.js & React. Discover innovative projects, research, and technical articles.
Moving to next field: 3
Saving field: ogTitle, value: Aryan Keluskar | Software Engineer & Web Developer Portfolio
Moving to next field: 4
Saving field: ogDescription, value: Dive into the work of Aryan Keluskar. I build dynamic web apps with Next.js & React and conduct academic research. Check out my projects, resume, and blog.
Moving to next field: 5
Saving field: canonicalPattern, value: https://aryankeluskar.com/
All fields completed, final tags: {
  keywords: [
    'Aryan Keluskar',
    'Software Engineer',
    'Web Developer',
    'Next.js Developer',
    'React Developer',
    'Portfolio',
    'TypeScript',
    'Resume',
    'Full Stack Developer',
    'FURI'
  ],
  title: 'Aryan Keluskar | Software Engineer & Web Developer',
  description: 'Explore the portfolio of Aryan Keluskar, a software engineer specializing in Next.js & React. Discover innovative projects, research, and technical articles.',
  ogTitle: 'Aryan Keluskar | Software Engineer & Web Developer Portfolio',
  ogDescription: 'Dive into the work of Aryan Keluskar. I build dynamic web apps with Next.js & React and conduct academic research. Check out my projects, resume, and blog.',
  canonicalPattern: 'https://aryankeluskar.com/',
  reasoning: "The strategy focuses on establishing 'Aryan Keluskar' as the primary brand keyword, immediately followed by high-value professional titles like 'Software Engineer' to attract recruiters. The description uses action-oriented verbs ('Explore', 'Discover') to entice clicks and highlights the core tech stack (Next.js, React) and key value propositions (projects, research). The Open Graph tags are slightly more conversational for social media sharing while maintaining professional context. The canonical pattern ensures that each page (e.g., /resume, /blog/post-name) is indexed as a unique entity, preventing duplicate content issues and consolidating link equity to the preferred URL."
}

 ๐Ÿ“ AI-Generated Meta Tags - Edit each field (6/6)


  Canonical URL Pattern (26 characters)

  โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
  โ”‚                                                                        โ”‚
  โ”‚ https://aryankeluskar.com/                                             โ”‚
  โ”‚                                                                        โ”‚
  โ”‚                                                                        โ”‚
  โ”‚                                                                        โ”‚
  โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

  Type to edit โ€ข Press Enter to save and continue โ€ข Escape to cancel


 Progress: [โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ]

โœ… Meta tags updated!

๐Ÿ”— You can now preview your meta tags in metatags.io
โœ… To see your meta tags in action, open https://metatags.io in your browser.
Publish your website, and then paste your website's URL there to see a preview.

Image Optimization Only

npx seothing --images                    # Preview image conversion in current directory
npx seothing --images --write            # Convert all images to WebP
npx seothing ./assets --images --write   # Convert images only from the assets folder
npx seothing --images --write --replace  # Convert and remove original files

Meta Tags Generation Only

npx seothing --meta                      # Generate meta tags (requires API key)
npx seothing --meta --write              # Generate and apply meta tags
npx seothing --meta --api-key YOUR_KEY   # Provide Google Gemini API key directly

Complete SEO Optimization

npx seothing

Command Line Options

Flag Description
-w, --write Apply changes (default: preview mode)
-r, --replace Replace original image files (default: keep originals)
-i, --images Process images only
-m, --meta Generate meta tags only
-a, --all Process both images and meta tags
--api-key <key> Google Gemini API key for meta tag generation

Project Structure

seothing/
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ cli.js          # CLI entry point
โ”‚   โ””โ”€โ”€ meta-tags.js    # Meta tags analysis and generation
โ”œโ”€โ”€ index.js            # Image optimization functionality
โ”œโ”€โ”€ package.json
โ””โ”€โ”€ README.MD

Supported Project Types

React, Vue, Angular, Next.js, WordPress, Static HTML, Gatsby, Astro

Requirements

  • Node.js >= 14.0.0
  • Google Gemini API key (for meta tag generation)

Contributing

Contributions are welcome! Please feel free to submit Issues or Pull Requests.

License

MIT License - see LICENSE file for details.


Made with โค๏ธ by Aryan Keluskar

About

CLI tool to skyrocket your Lighthouse score, by generating meta-tags and optimizing your website for better performance.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published