We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 32580
    • 25 Posts
    みなさま、こんばんは。
    しばらく前に、大量のインポートの問題でお世話になった者です。
    その後、サイト公開に向けて、徐々に準備をしているのですが、新たに問題が起きました。
    SEO Strict URLsに関してです。
    問題は、Strict URLsをオンにしていると、ページが開くまでが非常に重たく、30秒くらいかかるのです。
    オフにすると、2,3秒です。
    現在、modxには4000位のドキュメントがあります。

    Phizeさんの改良版に変えてみましたが、何もかわらずでした。
    Strict URLsの設定でなんとか動作を軽くする方法があるのでしょうか。

    あるいは、もしStrict URLsの動作が軽くできない場合、フレンドリーURLだけでSEO対策的には問題ないんでしょうか?

    ちなみにドキュメントの数、容量は以下に:
    modx_site_content 4210 30.27 MB - 30.27 MB 9.5 MB 39.76 MB

    フレンドリーURLの設定は:
    フレンドリーURLの使用  Yes
    フレンドリーURLの接頭辞  なし
    フレンドリーURLの接尾辞  なし
    フレンドリーエイリアス  Yes
    エイリアスパスを使用  Yes
    重複エイリアスを許可  No
    自動エイリアス生成  No

    よろしくお願いします。
      • 19033
      • 892 Posts
      こんにちは。
      直接の答えではないのですが、以下の部分だけ。。。
      あるいは、もしStrict URLsの動作が軽くできない場合、フレンドリーURLだけでSEO対策的には問題ないんでしょうか?
      これは、プラグインを無効にした場合、SEOとしてどうか?という質問ですね?
      http://modxcms.com/forums/index.php/topic,17299.0.html
      こちらをご参照いただければと思います。
        • 32580
        • 25 Posts
        MEGUさん、お返事ありがとうございます。
        そのページもみていましたし、MEGUさんのまとめサイトもみていました。
        ただ、「複数のURLを持つページは、サーチエンジンなどからペナルティを課せられる場合がある」
        というのが、実際どういうものなのか分からなかったので。。。
        やはりフレンドリーURLだけでは問題ありということでしょうか。。
        それならフレンドリーURLも使わない方がまだまし、ということもあるのでしょうか?
        (これはmodxとは関係ないですが。。。)

        と、いろいろまたネットで探したり、いじったりしていると、解決したかもしれません。
        Strict URLsプラグインの設定で、OnWebPagePrerenderをオフにすると、早くなりました。
        そしてちゃんと書き換えも行われているようです。

        そこで、さらにコードをみていると、プラグインの設定を、デフォルトで上から1、1,0,0としていたのを、
        すべて0にして、OnWebPagePrerenderをオンにしても同じように早くなりました。
        とりあえず、こんな処理でよいのでしょうか。
        いまいちOnWebPagePrerenderの役割がわからないのですが。

        現在、OnWebPagePrerenderはオンで、プラグインの設定をすべて0にしてあります。
        しばらくこれで様子をみます。

        やはりページ数が多いといろいろと問題がでてくるようです。
        とはいえ、解決できるmodxの可能性もすごいですが。。。
        あまりプログラムとかわからなくてもちょっとみていて、いじると何とかなってしまう。。
          • 36592
          • 970 Posts
          Quote from: wmo at May 29, 2008, 11:15 PM

          いまいちOnWebPagePrerenderの役割がわからないのですが。
          SEO Strict URLs には、2つの機能があります。

          1つは、MEGUさんが上でご紹介されているところに書かれているように、MODxには1つのページに複数のアドレスが存在してしまうんですが、これを1つに纏める機能です。例えば、SEO Strict URLs の設定で「mydomain.com/good.html」が本来の正しい唯一のURLだとします。この際、MODxのデフォルトでは、例えば「mydomain.com/good」とか「mydomain.com/good/」でアクセスしても同じページが表示されますが、SEO Strict URLs はこれらのURLでアクセスがあったときに、これを本来のURLへ301リダイレクトします。これが「OnWebPageInit」の部分で実施されている内容です。

          もう1つは、MODxがブラウザに吐き出すHTMLコンテンツ中にあるURLについて、設定のとおりに書き換える機能です。例えば、個別にあるページだけフォルダのようにURLを表示したい(manual overrides)と思ってそのページのTVでフォルダ表示に設定したとします。MODxデフォルトではそのページはフォルダではないので「mydomain.com/good/」のようには出力されず「mydomain.com/good.html」のように出力されます。これをMODxがブラウザに出力結果を吐き出す前に「mydomain.com/good/」に書き換えてから出力します。これが「OnWebPagePrerender」の部分で実施されている内容です。


          OnWebPagePrerenderをオフにすると、早くなりました。
          そしてちゃんと書き換えも行われているようです。
          上記のとおり、出力されるHTML中のURL書き換え処理で時間を食っていることになりますね。

          オフにしたというのは、システムイベントのチェックボックスをオフにしたということですよね?
          でも、本当にURLの書き換えが行われていますか?
          もともと書き換える必要が無いから書き換わっていないだけではないですか?
          この機能を停止して書き換えが行われるはずは無いと思うのですが...
          間違いなく書き換えられるURLが存在しているページでもう一度確認してみて頂けないでしょうか?


          プラグインの設定を、デフォルトで上から1、1,0,0としていたのをすべて0にして、
          OnWebPagePrerenderをオンにしても同じように早くなりました。
          上から
          「Edit document links」 ->(1)
          「Rewrite containers as folders」->(2)
          「Check for empty container when rewriting」
          「Enable manual overrides」
          でしょうか?

          (1)は、OnWebPagePrerenderのオンオフと同じ効果があります。0にするとURLの書き換えが行われません。ですので、早くなって当然ですね。

          (1)は1に戻してみて頂いて、もともと1だった(2)だけ0にすると早くなりますか?
            • 32580
            • 25 Posts

            OnWebPagePrerenderをオフにすると、早くなりました。
            そしてちゃんと書き換えも行われているようです。
            上記のとおり、出力されるHTML中のURL書き換え処理で時間を食っていることになりますね。

            オフにしたというのは、システムイベントのチェックボックスをオフにしたということですよね?
            でも、本当にURLの書き換えが行われていますか?
            もともと書き換える必要が無いから書き換わっていないだけではないですか?
            ご指摘のとおり、現在のページには、ページ内にURLがない(あってもwayfinderかdittoではき出されている)ので、
            書き換える必要がないようです。
            書き換えとは、ページ内のURLでなく、ブラウザからリクエストされたURLという意味でした。

            上から
            「Edit document links」 ->(1)
            「Rewrite containers as folders」->(2)
            「Check for empty container when rewriting」
            「Enable manual overrides」
            でしょうか?

            (1)は、OnWebPagePrerenderのオンオフと同じ効果があります。0にするとURLの書き換えが行われません。ですので、早くなって当然ですね。

            (1)は1に戻してみて頂いて、もともと1だった(2)だけ0にすると早くなりますか?

            設定はその通りです。
            早速、edit doc linkだけを1にしても、早いままでした。(これは今の場合、対象となるファイルがないので当然でしょう)
            そして次にrewrite containersだけを1にしても早かったです。
            やはりこのうち、どちらだけを選択しないといけないようです。
            この場合、edit doc linkだけを1にするのがベストの選択でしょうか。

            現在、OnWebPagePrerenderはオンで、設定を1、0,0,0としています。
              • 36592
              • 970 Posts
              Quote from: wmo at May 30, 2008, 12:19 AM

              現在のページには、ページ内にURLがない(あってもwayfinderかdittoではき出されている)ので、
              書き換える必要がないようです。
              WayfinderやDittoで吐き出したURLこそ、この書き換えの対象になるんですよ~


              edit doc linkだけを1にしても、早いままでした。(これは今の場合、対象となるファイルがないので当然でしょう)
              「Edit document links」が1の状態で、「Rewrite containers as folders」を1にすると遅くなり0にすると早いままになるということですよね?

              ソースを覗いて見ましたが、foreach文でドキュメントの数の回数だけループが回ってるっぽいですね。
              4000回も回るから時間がかかるってことでしょうかね~

              この機能は一番下の「Enable manual overrides」で(大変かもしれないけど)代用できます。
              一番上の「Edit document links」と一番下の「Enable manual overrides」だけ1にして他の2つは0にする設定だとスピードはどうですか?
                • 32580
                • 25 Posts
                wayfinder,dittoのところはよく見ずに、できてると思ってました。。。

                この機能は一番下の「Enable manual overrides」で(大変かもしれないけど)代用できます。
                一番上の「Edit document links」と一番下の「Enable manual overrides」だけ1にして他の2つは0にする設定だとスピードはどうですか?
                これを早速やってみましたが、スピードは変わりませんでした。
                ということはやはり二つめのRewrite containers as foldersが問題だったようです。
                ということは子を持つフォルダドキュメントに関してはoverrideTVで個々に設定して解決する、という理解ですね。
                  • 36592
                  • 970 Posts
                  Quote from: wmo at May 30, 2008, 01:30 AM

                  ということはやはり二つめのRewrite containers as foldersが問題だったようです。
                  ということは子を持つフォルダドキュメントに関してはoverrideTVで個々に設定して解決する、という理解ですね。
                  そのとおりです。

                  多分今のMODxでは、SEO Strict URLsを使わなくても「子ドキュメントを持つドキュメント」は自動的にフォルダになると思います。
                  それ以外のものは接頭辞+エイリアス+接尾辞のフォーマットになるはずです。

                  ・強制的にフォルダ型式のURLにしたいドキュメント
                  ・逆にフォルダだけど接尾辞(.html)を付けたいドキュメント
                  ・接尾辞(.html)を出したくないドキュメント

                  などは、それぞれのドキュメントのTVで個別に設定してあげればOKだと思います。