• johnhan520

    (@johnhan520)


    When using the bulk crawling feature to translate website pages, a large number of empty translation records are generated. Once these empty records are saved, the affected pages can no longer trigger translation normally.

    Based on my testing, this issue appears to be related to the visitor IP address. After switching to a new IP address, the pages can be translated normally again. However, after translating a certain number of pages, the system starts generating empty translation records again.

    This makes the bulk translation feature unreliable, because many pages end up with empty translation records and cannot be automatically translated again afterward.

    Could you please investigate and resolve this issue?

    Ideally, when the translation service returns an empty result, fails, or is temporarily rate-limited, the system should not save an empty translation record. Instead, the page should remain in an untranslated state so that it can be retried later.

    I am a paid customer, and I would appreciate your help in investigating and resolving this issue.

    Thank you.

    • This topic was modified 1 month ago by johnhan520.
Viewing 3 replies - 1 through 3 (of 3 total)
  • Plugin Support gptranslatefredrik

    (@gptranslatefredrik)

    Hi,

    Thank you very much for the detailed report, and I’m sorry for the trouble.

    You’re right that this isn’t caused by any IP restriction built into GPTranslate itself — the plugin has no such limitation, and bulk crawling uses the exact same translation mechanism as a normal page visit, just triggered many times in a row. What you’re most likely running into is a rate limit or IP block on your own server/hosting side (a security plugin like Wordfence, a firewall, Cloudflare, or your host’s own protection against a high volume of requests to admin-ajax.php/the REST API in a short time) — which would explain why translations start failing after a while and work again once you switch to a new IP.

    That said, you’ve identified a useful gap that we can fix regardless of the underlying cause: when a translation request fails or the save doesn’t go through cleanly, GPTranslate currently doesn’t prevent an effectively-empty result from being saved as a translation record — exactly as you suggested, it should instead leave the page untranslated so it can be retried automatically. We’re going to address this.

    I’d really appreciate it if you could open a thread on our support forum with these same details, so we can track the investigation and confirm the fix with you there. In the meantime, could I kindly ask you to remove the 3-star review and wait until we’ve resolved this together? We’d like the chance to fix this properly and have you confirm it works before any rating is left — that seems fairer to both of us than rating it while the issue is still open.

    As an immediate workaround, try slowing down the crawl: check if your GPTranslate settings have a request delay option, and increase it, or check your hosting/security plugin’s rate-limit settings/logs to see if your own server is the one blocking the requests during the crawl.

    Thank you again for reporting this and for your patience — much appreciated as a paying customer.

    Best regards,

    John

    Thread Starter johnhan520

    (@johnhan520)

    I found two issues:

    Issue 1: Visiting a nonexistent page in another language still creates a translation record

    Observed behavior: When I visit a nonexistent page in another language, the page correctly returns a 404. However, a translation record is still created in the admin area, and the URL is added to /wp-json/langora/v1/sitemap.xml.

    Expected behavior: Pages that return a 404 should not generate translation records or be included in the sitemap. This would prevent invalid database entries and avoid potential SEO issues.

    Issue 2: Translation records are missing from the sitemap after URL alias rewriting is disabled

    Steps to reproduce:

    1. Enable “Rewrite URL alias for translated pages”.
    2. Crawl pages to generate translation records. The records appear correctly in /wp-json/gptranslate/v1/sitemap.xml.
    3. Disable “Rewrite URL alias for translated pages”, delete all translation records, and crawl the pages again.

    Actual behavior: The translation records are created successfully in the admin area, but /wp-json/gptranslate/v1/sitemap.xml is empty.

    Expected behavior: After disabling URL alias rewriting and crawling the pages again, the generated translation records should still appear in the sitemap.

    Thread Starter johnhan520

    (@johnhan520)

    I found two issues:

    1. When using “Custom URL prefixes” to customize a language prefix—for example, changing uk to ua—“Optional translation” does not take effect if “Translated language” is set to “Ukrainian” in “Words for elements to exclude by language (Dictionary).”
    2. The same page is translated again whenever it is accessed with a different query string. Malicious traffic could trigger a large number of unnecessary translations and result in substantial costs.
Viewing 3 replies - 1 through 3 (of 3 total)

You must be logged in to reply to this review.