{"id":18723176,"url":"https://github.com/jf990/seo-analyzer","last_synced_at":"2025-09-20T11:37:04.753Z","repository":{"id":42384461,"uuid":"162649004","full_name":"jf990/seo-analyzer","owner":"jf990","description":"Analyze and score a directory of web pages for SEO","archived":false,"fork":false,"pushed_at":"2024-05-06T22:27:19.000Z","size":581,"stargazers_count":14,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-26T09:22:45.648Z","etag":null,"topics":["javascript","node-js","seotools"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jf990.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-21T01:19:13.000Z","updated_at":"2024-08-03T07:15:10.000Z","dependencies_parsed_at":"2024-11-07T13:48:07.250Z","dependency_job_id":"f5a76c7e-f735-49bf-bc7d-ef4ff5006b75","html_url":"https://github.com/jf990/seo-analyzer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jf990%2Fseo-analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jf990%2Fseo-analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jf990%2Fseo-analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jf990%2Fseo-analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jf990","download_url":"https://codeload.github.com/jf990/seo-analyzer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248586225,"owners_count":21128995,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","node-js","seotools"],"created_at":"2024-11-07T13:47:57.845Z","updated_at":"2025-09-20T11:37:04.666Z","avatar_url":"https://github.com/jf990.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SEO Analyzer\n\nAnalyze and score a directory of web pages for SEO.\n\nThis project is designed to crawl a sub-folder of a web site and score the pages for SEO. There are some general rules, such as looking at title, description, keywords, and making a general determination if they are strong SEO-wise. As this utility scans a site, pages on the site are scored while any links that go off the site are only checked if they are valid (404.)\n\nRun this utility by updating the configuration file or providing command line options, or some combination of both. Anything specified on the command line will override anything in the configuration file.\n\nIt is best to run this on a sub-section of a website. While you could run it from /, doing that could be very slow and potentially crash the app due to memory exhaustion if the site has a lot of pages and links. A better method is to chunk the site by sub-folder and analyze a section at a time.\n\n## Development\n\nInstall project dependencies:\n\n```bash\nnpm install\n```\n\nSource is found in the `src` folder, mainly `index.js`.\n\nEdit the `config.yaml` file to set the crawl pattern (see below.)\n\nRun the project with:\n\n```bash\nnpm start\n```\n\n## Configuration file options\n\nEdit `config.yaml` to configure the crawler for the website you want to analyze.\n\n`protocol`:\nforce protocol when we don't know (e.g. use https when encountering a // URL)\n\n`host`:\nspecify host to crawl (required.) This is a domain, e.g. `example.com`.\n\n`startPage`:\nspecify start path on host to crawl (required)\n\n`subPathOnly`:\nonly score pages under start path. If not specified will attempt to crawl all pages found, and this is very dangerous. Default is true.\n\n`saveToCSV`:\npath to file name to save results in CSV file (leave empty to not save)\n\n`showReport`:\nshow final report to stdout. Default is false.\n\n`debug`:\nturn on debugging. Default is false.\n\n## Command line options\n\n`--help`:\nShow help\n\n`--version`:\nShow version number\n\n`-c`, `--conf`:\npath to configuration file (must be a YAML formated file)\n\n`-h`, `--host`:\nspecify host to crawl (required)\n\n`-p`, `--startpage`:\nspecify start path on host to crawl (required)\n\n`-o`, `--savetocsv`:\npath to file name to save results in CSV file (leave empty to not save)\n\n`-d`, `--debug`:\nturn on debugging. Default is false.\n\n`-l`, `--protocol`:\nforce protocol when we don't know (e.g. use https when encountering a // URL)\n\n`-a`, `--subpathonly`:\nonly score pages under start path. If not specified will attempt to crawl all pages found, and this is very dangerous. Default is true.\n\n`-r`, `--showreport`:\nshow final report to stdout. Default is false.\n\n## Issues and bug reports\n\nFeel free to submit issues, bug reports, and enhancement requests using the [issues tab](https://github.com/jf990/seo-analyzer/issues).\n\n## Contributing\n\nAll contributions are welcome and encouraged. Please follow the [Esri Community Code of Conduct](https://github.com/Esri/contributing/blob/master/CODE_OF_CONDUCT.md).\n\nNOTE: Be sure to merge the latest from \"upstream\" before making a pull request!\n\n## License\n\nCopyright 2024 by Esri\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjf990%2Fseo-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjf990%2Fseo-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjf990%2Fseo-analyzer/lists"}